home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr49 / actlib11.zip / DATE.ZIP / DIFFDATE.C < prev    next >
Text File  |  1993-01-14  |  984b  |  40 lines

  1. /*  Copyright (C) 1993   Marc Stern  (internet: stern@mble.philips.be)  */
  2.  
  3. #include "date.h"
  4. #include <stdio.h>
  5. #include <conio.h>
  6. #include <string.h>
  7. #include <ctype.h>
  8. #include <dos.h>
  9.  
  10.  
  11. /***
  12.  *
  13.  *  Function diffdate :   Compare two dates
  14.  *              Return date1 - date2
  15.  *
  16.  *  Return            :   Number of days between date1 and date2
  17.  *
  18.  *  Decisions         :   No validity checks are made on dates;
  19.  *              if dates are not valid, result is unpredictable.
  20.  *
  21.  ***/
  22.  
  23. long diffdate( struct tm dtime1 , struct tm dtime2 )
  24.  
  25. { long delay ;
  26.   int year ;
  27.  
  28.   mktime( &dtime1 ) ; mktime( &dtime2 ) ;
  29.  
  30.   delay = 365L * ( dtime1.tm_year - dtime2.tm_year ) + ( dtime1.tm_yday - dtime2.tm_yday ) ;
  31.  
  32.   for ( year = dtime1.tm_year ; year < dtime2.tm_year; year ++ )
  33.       if ( isleapyear(dtime1.tm_year) ) delay -- ;
  34.  
  35.   for ( year = dtime2.tm_year ; year < dtime1.tm_year; year ++ )
  36.       if ( isleapyear(dtime2.tm_year) ) delay ++ ;
  37.  
  38.   return delay ;
  39. }
  40.